The present invention relates to a load control and overload protection device for a real-time communication system.
The purpose of the load control function is to maintain a high flow of successfully handled calls during overflow conditions in a real-time communication system. This is achieved through regulating the accepted call intensity and the number of existing calls that can be disconnected by the real-time communication system taking into account the load situation of a central processor. The load regulation function does not affect the traffic process in normal traffic situations, however, it is intended to prevent an extremely high offered call intensity and/or call disconnection intensity from causing failure of the real-time communication system.
Usually, a call may be subdivided in to several jobs to be handled by the real-time communication system.
As job requests handled by the system may have real-time requirements such as dial tone delay and through connection delay according to ITU-T, the system must be able to handle an overload situation. Overload situations may arise when more jobs are offered per time unit than the system can handle. This means that the system may be heavily loaded and may not be able to accept all offered jobs. In other words, an overload situation can be seen as a peak of offered jobs, that last too long.
However, although a peak of offered jobs depending on the character of the jobs in question, may risk to overload, e.g., job buffers, it does not necessarily mean that the system is overloaded to the extent that real-time requirements can not be kept. To the contrary, the number of offered jobs may overload the system, so that real-time requirements can not be kept, although the job buffers are not overloaded. From this it follows that overload may occur for either any of the job buffers or a central processor CP or both at the same time.
An example for a load control and overload protection system to avoid an overload situation is shown in FIGS. 32 and 33 and described in Ericsson Review Number 3, 1995. This example relates to the load control and overload protection of a central processor CP handling call related events and other data communication processes in a SPC telephone system. Such a system is designed to handle a prescribed workload of call connections and related jobs.
One problem encountered in this context is how to protect the, e.g., the central processor PC from performance degradation or system failure in case traffic is more intensive than under normal conditions. Examples for such situations are televoting when a large number of subscribers starts making calls simultaneously that are transferred by regional processors RP to the central processor CP or networking failures during busy hour. Here, if no actions are taken, this will eventually lead to congestions and overflow of job buffers JB in the system where jobs are queued and the consequence would be a restart of the system and eventually stop scanning of external requests.
As shown in FIG. 32, there is provided a regional processor handler RPH which handles the signalling to and from the regional processors RP. Before the regional processor handler RPH distributes any external signals, i.e. signals from the regional processors, to the corresponding a job buffer in the central processor CP the occupation level of the buffer is checked. This is order not to overflow the job buffers by distributing signals to the job buffers faster than the central processor can fetch signals from the job buffers and execute the job initiated by each signal. If this would be the case the regional processor handler RPH will halt the distribution of signals to the job buffers JB in the central processor CP until the overload situation has ceased.
Equally the regional processor handler RPH will halt the distribution of external signals to the central processor CP for a certain time if the central processor CP has been permanently overloaded for a gross duration of time. This in order to allow the central processor CP to fetch and execute jobs queued in job buffers and eventually cease the processor overload situation.
Thus, the regional processor handler RPH carries out an autonomous flow control of external signals entering the central processor CP with regard to job buffer occupation, i.e. job buffer load. To some extent the regional processor handler RPH also helps avoiding permanent processor overload of gross duration, as an overload protection (not load control).
Signal(s) queued in any of the job buffers will be fetched by the operating system in the central processor CP and distributed to the appropriate application software for execution. As many different optional applications may be running the load control must be made in conjunction with the application software, as only the application knows what type of signal is received, e.g., if it is related to a call already in progress, to the connection of a call or to a new call for which processor load must be requested. For, e.g., messages in a service control point SCP in an intelligent network IN, processor load may be requested for initial, continue and end messages.
Each application will request processor load capacity from a load controlling function. The load controlling function employs a hierarchy of, e.g., 16 call buffers CB where requests may be temporarily stored, if not submitted capacity immediately, until the call set-ups continue. By using several buffers, it is possible to handle calls priorities so that call requests with different priorities are stored in different buffers.
As shown in FIG. 32, in case a call request arrives at the regional processor handler RPH it is analyzed to determine which job buffer JB it should be mapped to. In case of buffer capacity the delivery of signals is halted and the scanning of regional processors RP is stopped.
Otherwise, delivered signals and job requests are submitted to the central processor. To ensure that the work load offered to the central processor CP in an overload situation is close to its loadability limit, the number of collected job requests is regulated. Here, the regulation imposes an upper limit on the number of requests collected each time. This limit is adjusted once during every regulation interval, e.g., once every second. In case the load of the central processor CP is above a certain system dependent level the maximum number of collected requests is reduced. Further, in case the load is below a certain system dependent level the limit is again increased. Overall, the object is to keep the load of the central processor cP close to the loadability level during an overload situation.
Thus, load control incorporates mechanisms to keep throughput of requested jobs with real-time demands high under constant or slowly varying overload. To this end, the rate at which new calls are given service is regulated in case the load of the central processor CP is high. Here, in particular jobs corresponding to incoming calls are rejected if the load is too high. Overall, the load control mechanism is designed to be robust in situations involving various types of overload and traffic mixes so as to maintain adequate throughput and short delays in compliance with the telecommunication standard sector of the International Telecommunication Union, ITU-T.
FIG. 33 shows typical load control characteristics. The upper diagram in FIG. 33 gives a comparison of job throughput against offered traffic without load control (dotted line) and with load control (solid line). As shown in FIG. 33, the throughput without any load control will rapidly approach a level of zero in case no precautions are taken, while otherwise a throughput close to the maximum may be maintained. Similarly, as shown in the lower diagram of FIG. 33, without load control the delay time will rise considerably while being essentially constant in the case of load control.
One important principle being related to load control is called back pressure of overload and means to press traffic congestion backwards to the sources that generate overload. Generally, back pressure is exerted on signalling traffic by a central processor that either receives more signals than it is capable of handling or a central processor that cannot transfer signals, e.g., due to congestion in other exchanges. Within a specific exchange, back pressure is obtained by reducing the flow of signals towards the central processor CP.
Further methods are the gapping method where a limited number of requests per unit time is accepted and blocking where all affected requests are rejected.
Still further, so-called overload protection mechanisms are used. They are intended to protect the system from overload calls by traffic that is not controlled by the load control functions mentioned above. One typical example would be a rapid increase of call attempt intensity that the load control cannot be adapted to. Such situations might cause uncontrolled loss of signals and activation of recovery functions, e.g., system restart. Usually, overload protection mechanisms are designed to detect severe overload conditions quickly and to act fast so that alarm levels are set on certain buffers. In case an alarm level is exceeded, the signal flow towards the buffer is reduced until the buffer occupancy returns to a normal level which is also referred to as stop scan mechanism. Another option would be to simply stop the transfer of jobs from the call buffers to the central processor until the overload situation ceases.
However, within the existing concepts outlined above, problems arise as jobs being related to call disconnections and certain other call related events are not regulated. The reason for this is that it is currently assumed that call disconnections normally follow the intensity of call set-up jobs that are regulated. It should be noted that this is only true under normal circumstances and there are various events within a system itself or a network that can result in vast irregularities of, e.g., call disconnections and other call related events.
As outlined above with respect to FIG. 32, one option to protect the central processor CP against overload would be to limit the occupation of the job buffers JB and to stop delivering new jobs to the central processor CP. However, this only protects against externally initiated jobs and only to a certain extent. Further, this approach does not take into account the so-called extension factors of signals being related to different jobs, i.e. the amount of actual use of a capacity once a job is admitted to the job buffer. They are only controlling the number of jobs admitted to the job buffer. This might lead to severe overload in the job buffer in case signals with high extension factors are involved. This leads to another disadvantage that the job buffers might have a large margin to cope with eventual signal multiplication and forking and signal data expansion.
Another option currently in use is the job buffer occupation limit where the load regulation function for the central processor CP stops to distribute new call connection requests as well as other job requests. However, here it is not possible to get an impact on, e.g., call disconnections and other call related jobs and more generally jobs that do not seize processor load through this regulation mechanism.
For non-regulated jobs another method would be to split these jobs over different phases in order to even out the load. While this simple method of running probability statistics will work for certain simple systems it cannot be trusted in large complex systems.
From the above, it follows that with growing systems and increasing complexity the need for coordination between jobs according to call related events, maintenance events and other possible events is increasing. Also, the task to overview different functions and predict events that can occur simultaneously, interact and result in hazardous overload situations becomes more and more difficult, resulting in an increased congestion of the job buffers of the central processor.
In view of the above, the object of the invention is to keep control of all relevant events in a real-time communication system.
According to a first aspect of the invention, this object is achieved through a load regulation method for a central unit in a real-time communication system, comprising the steps of submitting at least one job to a buffer means providing a pre-specified buffer capacity, submitting the job queued in the buffer means to a processing means for further processing, and dynamically updating the available buffer capacity of the buffer means according to the actually used job buffer capacity after each load regulation interval.
One important advantage of the inventive method is that it is possible to keep control of all major events and processes within the real-time communication system. Also, the control mechanism is not restricted to the system level but may to a certain extent be distributed to a user function. In addition, the efficiency of the load regulation method allows for low overhead added to the real-time communication system which has been one of the arguments against the regulation of, e.g., call disconnections.
Still further, in case normal operation conditions prevail the inventive load regulation method will not delay any submission requests.
Also, according to a second aspect of the present invention, the object is achieved through a load regulation method for a central unit in a real-time communication system, comprising the steps of submitting at least one job to a buffer means providing a pre-specified buffer capacity for each of a plurality of job execution priority levels, submitting the jobs queued in the buffer means to a processing means for further processing according to the job execution priority level, respectively, interrupting a task on a lower job execution priority level in case a job on a higher job execution priority level is submitted to the buffer means, executing dynamic control of the load of the processing means by sending a loop signal to a lower priority level in case the seized job buffer capacity reaches the maximum available job buffer capacity on a higher priority level, and resuming processing of jobs on the higher priority level in case an acknowledgement is received on this level after the processing of the loop signal on the lower priority level.
Besides the advantages outlined with respect to the first aspect of the invention, according to the second aspect of the invention it is also possible to distinguish between priority of different submitted jobs/processes and to achieve a regulation therefore.
Still further, the loop sending mechanism according to the present invention allows for a very efficient dynamic control on the processor load. The reason for this is that once a loop signal is sent down to a lower level in case the maximum available capacity is seized on a high level, and once the acknowledgement for processing on this loop""s signal on the higher level is again received on the upper priority level, is a clear indication that all capacity is then again available on the higher level. Therefore, the start of a new regulation interval must not be awaited but the processing may be resumed on the higher level immediately upon receipt of the acknowledgement from the lower level. This allows for a dramatic increase of system efficiency.
According to a third aspect of the invention, the object of the invention is achieved through a load regulation unit for a real-time communication system, comprising buffer means providing buffer capacity for jobs to be processed in the real-time communication system, processing means handling the jobs submitted to the buffer means, and load regulation means adapted to dynamically adjust the available buffer capacity of the buffer means in dependence on the actually seized job buffer capacity at the start of every load regulation interval.
According to the third aspect of the invention the same advantages may be achieved as with the first aspect of the invention. Further, according to the third aspect, the number of jobs allowed to the central processor, which are allowed to be executed per load regulation interval, is related to the available job buffer capacity instead of being regulated directly by a processor load regulation function as in the state of the art. Any job queued in the job buffer is fetched in order to queuing. It is then up to each application receiving the job to request either processor load or job buffer capacity depending on the type of job. If the job is not submitted it is up to the application to decide if the job should be rejected or queued internally, within the application, until capacity is available. Thus, the central processor is protected from being overloaded by maximum events or by unpredicted interactions between two or more different events either of which would otherwise result in buffer congestion and processor overload, respectively.
Further, according to a fourth aspect of the present invention, the object outlined above is achieved through a load regulation unit for a real-time communication system, comprising buffer means providing buffer capacity for each of a plurality of job execution priority levels, processing means handling the jobs submitted to the buffer means, and load regulation means adapted to submit a job to the buffer means according to the respective job execution priority level and the available buffer capacity assigned to the job execution priority level, to send a loop signal to a lower priority level in case the seized buffer capacity in the buffer means reaches the maximum available buffer capacity on the higher priority level, and, to resume the processing of jobs on the higher priority level in case on processing of the loop signal on the lower priority level an acknowledgement is sent up to the higher priority level.
Thus, each priority level in the load regulation unit has its own job buffer for jobs to be submitted on the priority level in question. Thus, it is possible to distinguish between different job priorities for jobs on a priority level which are now regulated. In case of scarce capacity jobs will either be queued by the load regulation function or the application or both, i.e. jobs queued by the load function will be put in queue assigned for the priority in question. Also, the processor load may be indirectly distributed over time and be minimized according to system safety margins. Finally, any overload situation which might arise is dealt with rapidly and efficiently.
Further, the job buffer capacity load regulation is not restricted to a specific priority level but it may alternatively or additionally be adapted to one or more priority levels. In such a case the job buffer capacity load function must be adapted to the differences in real-time requirements.
According to a preferred embodiment of the invention a user function may indicate a request to be of the all of requested or any available type. The former one is related to, e.g., user functions with regular requests running continuously and seize a pool of capacity for use whereafter it is needed, e.g., call disconnections. This user will have a distributed pool of capacity which is continuously used and renewed through new seizure. The latter is related to, e.g., user functions with non-regular requests for job buffer capacity. This capacity is seized only as it is needed and used at each particular time.
Here, according to the invention there is considered the fact that certain jobs with high real-time demand for processor load may suffer if there corresponding requests for job buffer capacity are queued in case no job buffer capacity is available. Thus, according to this preferred embodiment of the invention the job buffer capacity load function is adapted such that a user function may indicate that its corresponding request for job buffer capacity may not be queued but must either be acknowledged or rejected immediately. Also, the job buffer capacity load function may be modified to override available capacity in a specific job buffer capacity regulation interval depending on the processor load situation by assigning job buffer capacity to such a request. This is possible due to the large safety margin of the job buffer capacity.
Further, according to yet another preferred embodiment of the present invention the available job buffer capacity is recalculated at the beginning of each load regulation interval.
Thus, the calculation of available job buffer capacity with every load regulation interval or sub-interval allows to adapt the previous estimation to the actually existing present job buffer occupation. This allows to reassign overestimated job buffer capacity at the beginning of every sub-interval, so that the dynamic adaptation of available job buffer capacity leads to an increased utilization of available resources.
Further, according to yet another preferred embodiment of the invention also critical overload situations are supervised. In particular, the lowest priority level may be supervised in order to detect any critical delay of execution so that it is possible to reduce or stop the execution of jobs on higher priority levels momentarily. Thus, it is possible to cut down on the execution rate and higher priority levels in order to allow execution of jobs on lower priority levels in critical overload situations.
Further, according to yet another preferred embodiment of the invention an interrupt may be received from the operating system in case of high job buffer load.
Thus, according to the present invention there is also provided an operating system detection of high job buffer load. In particular, according to the present invention the operating system can detect hazardous growth of job buffer occupation immediately and may then call the load regulation mechanism according to the invention to take immediate action, e.g., clear available job buffer capacity, clear job buffer capacity distributed to different users, and disable any new job requests, respectively. This feature of the invention allows for an even more powerful and flexible control of the available job buffer capacity. Further, any system malfunctioning is avoided at the very beginning.
Another feature of the present invention is the simultaneous use of the regulation steps outlined above on a plurality of priority levels or on lower priority levels, respectively. If the regulation features are used on a lower priority level such as the, e.g., C-priority level it must be adapted to the difference in real-time conditions. Here, it is necessary to subscribe on the job buffer capacity until the job is finished and then the capacity is returned to the regulation function. This also means that the amount of distributed job buffer capacity needs to be adapted.
Also, it should be noted that the regulation functionality according to the invention is not only to be used for previously un-regulated functions. To the contrary, according to the present invention, also previously regulated functions with high signal data expansion factor could be considered, e.g., a job that will result in several jobs or processes for which it is necessary to keep a better control.